//--------------------------------------------------------------------------------
// Alec G Thilenius
//
// This software is distributed under the MIT License, available at the following
// URL:
// http://www.opensource.org/licenses/mit-license.php
//--------------------------------------------------------------------------------

#pragma once

#include "PCH.h"
#include "Vertex.h"
#include "Graph.h"

namespace AlecThilenius
{
	class Edge
	{
	public:
		~Edge(void);

		//-------------------    Getters  ---------------------
		VertexPtr GetTail			();
		VertexPtr GetHead			();

		//-------------------    Setters  ---------------------
		void SetWeight				(double weight);
		double GetWeight			();

	private:
		//------------   Private constructor  -----------------
		Edge(VertexPtr head, VertexPtr tail, double weight);

		//-------------------    Member   ---------------------
		VertexPtr m_head;
		VertexPtr m_tail;
		double m_weight;

		//-------------------    Friends  ---------------------
		friend Vertex;
		friend Graph;

	};
};

